// 统一错误处理工具函数

/**
 * 统一错误处理函数
 * @param {Error} error - 错误对象
 * @param {string} customMessage - 自定义错误提示文本
 * @param {boolean} showToast - 是否显示toast提示
 */
export function handleError(error, customMessage = '', showToast = true) {
  // 控制台输出
  console.error('操作失败:', error);
  
  // 显示错误提示
  if (showToast) {
    uni.showToast({
      title: customMessage || '操作失败，请重试',
      icon: 'none',
      duration: 2000
    });
  }
}

/**
 * API错误处理函数
 * @param {Error} error - 错误对象
 * @param {string} operation - 操作描述
 */
export function handleApiError(error, operation) {
  console.error(`${operation}失败:`, error);
  
  // 根据错误类型显示不同的提示
  let message = `${operation}失败`;
  
  if (error && error.message) {
    // 如果是网络错误
    if (error.message.includes('Network Error') || error.message.includes('网络')) {
      message = '网络连接失败，请检查网络设置';
    } 
    // 如果是超时错误
    else if (error.message.includes('timeout')) {
      message = '请求超时，请稍后重试';
    }
    // 其他错误使用默认提示
    else {
      message = error.message || message;
    }
  }
  
  uni.showToast({
    title: message,
    icon: 'none',
    duration: 2000
  });
}

export default {
  handleError,
  handleApiError
};